﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConverterCore
{
    /// <summary>
    /// 用于表示一对键和值。
    /// </summary>
    public class KeyValue
    {
        /// <summary>
        /// 键。
        /// </summary>
        public string Key;

        /// <summary>
        /// 值。
        /// </summary>
        public object Value;

        /// <summary>
        /// 将Value转为字符串输出，可以为null。
        /// </summary>
        public string ValueString => Value?.ToString();

        /// <summary>
        /// 默认构造函数。
        /// </summary>
        public KeyValue() { }

        /// <summary>
        /// 以键值初始化此对象。
        /// </summary>
        /// <param name="key">键。</param>
        /// <param name="value">值。</param>
        public KeyValue(string key, string value)
        {
            Key = key;
            Value = value;
        }

        /// <summary>
        /// 判断Value是不是数值型，只有在不为null且是数值型是才返回true。
        /// </summary>
        /// <returns></returns>
        public bool IsNumber()
        {
            return Value == null ? false : double.TryParse(Value.ToString(), out double _);
        }
    }
}
